//
//  home(首页)TableViewController.swift
//  我的微博
//
//  Created by 杨庆 on 15/10/9.
//  Copyright © 2015年 双元班. All rights reserved.
//

import UIKit

class home____TableViewController: HMBaseTableViewController {
    /// 微博数据的数组(定义的cell 的数据)的属性
    var statuses:[status]? {
        didSet{//这个是给我们的 statuses赋值
            //刷新数据
            tableView.reloadData()
        }
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        //如果用户没有登录,设置访客视图,返回
        if !UserAccount.userLogon{
            vistorView?.setupViewInfo(true, imagName: "visitordiscover_feed_image_smallicon", message: "关注一些人,回到这里看看有什么惊喜")
            return
        }
        prepareTableView()
        loadData()
    }
    /// 准备表格视图
    private func prepareTableView(){
        //注册原型的cell(这个是系统的cell) (相当于 storyabord 的 设置的那个属性)
        tableView.registerClass(StatusTableViewCell.self , forCellReuseIdentifier: "Cell")
        //还要有一个预估行高+ 自动计算行高 才能完成cell 的行高的漂亮的显示
        tableView.estimatedRowHeight = 200
        //设置 表格的行高为 自动的计算行高
        tableView.rowHeight = UITableViewAutomaticDimension
        //取消分割线
        tableView.separatorStyle = UITableViewCellSeparatorStyle.None
        //手动的设置的行高.注意的是如果不使用,自动计算行高的话,就不需要设置底部的约束,否则就会有约束的过多的冲突!
//        tableView.rowHeight = 300
    }
    /// 加载微博的网络数据
    private func loadData() {
        
        //改换成用户的信息的单例
        status.loadStatus {[weak self] (dataList, error) -> () in
            print(dataList)
            if error != nil{
            print(error )
            return
            }
            //定义的重要的属性来 ,接数据
            self?.statuses = dataList
        }
    }
    //MARK:-数据源的方法;
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return statuses?.count ?? 0
    }
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        //注册原型 cell, storyaboary,和 register Class
        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! StatusTableViewCell
        //传递的数据的接口
        cell.statuses = statuses![indexPath.row]
        return cell
    }
}
